﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
using System.Configuration;

public partial class CartaPorte : PageBase
{
    #region TraerContextItems
    private void TraerContextItems()
    {
        if (Context != null)
        {

            if (Context.Items["StrAcId"] != null)
                StrAcId = Context.Items["StrAcId"].ToString();
        }
    }
    #endregion

    #region StrAcId
    public string StrAcId
    {
        get
        {
            if (ViewState["StrAcId"] != null)
                return ViewState["StrAcId"].ToString();
            return "";
        }
        set { ViewState["StrAcId"] = value; }
    }
    #endregion

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            TraerContextItems();
            cargarddlZON_ID_ENTREGA();
            cargarddlZON_ID_EMBARQUE();
            cargarddlZON_ID_CONSIGNATARIO();
            cargarddlddlZON_ID_DESTINO();
            cargarddlACL_ID_CONSIGNATARIO();
            cargarddlZON_ID_ORIGEN();
            cargarddlACL_ID_NOTIFICAR();
            cargarddlACL_ID_ORIGEN();
            cargarddlACL_ID_DESTINO();

            cargarddlZON_ID_RECEPCION();
            cargarddlZON_ID_NOTIFICAR();



            if (StrAcId != "")
            {
                cargarCampos();
            }
        }

    }

    #region cargarCampos
    private void cargarCampos()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);

            #region AUT_ORDEN_SALIDAs

            var datosCarta = from a in contexto.AUT_CARTAs
                             where a.AC_ID == Convert.ToDecimal(StrAcId)
                             select a;

            foreach (var objCarta in datosCarta)
            {

                txtAC_NUMERO.Text = objCarta.AC_NUMERO.ToString();
                txtAC_EXP.Text = objCarta.AC_EXP;
                txtAC_FACTURA.Text = objCarta.AC_FACTURA;
                ddlACL_ID_ORIGEN.Value = objCarta.ACL_ID_ORIGEN.ToString();
                ddlZON_ID_ORIGEN.Value = objCarta.ZON_ID_ORIGEN;
                txtACL_DIRECCION_ORIGEN.Text = objCarta.ACL_DIRECCION_ORIGEN;
                txtACL_NIT_ORIGEN.Text = objCarta.ACL_NIT_ORIGEN;
                ddlACL_ID_DESTINO.Value = objCarta.ACL_ID_DESTINO.ToString();
                ddlACL_ID_CONSIGNATARIO.Text = objCarta.ACL_ID_CONSIGNATARIO.ToString();
                txtAC_DIRECCION_DESTINO.Text = objCarta.AC_DIRECCION_DESTINO;
                txtAC_NIT_DESTINO.Text = objCarta.AC_NIT_DESTINO;
                txtAC_CONTACTO.Text = objCarta.AC_CONTACTO;
                ddlZON_ID_DESTINO.Value = objCarta.ZON_ID_DESTINO;
                txtAC_DESCRIPCION_CONSIGNATARIO.Text = objCarta.AC_DESCRIPCION_CONSIGNATARIO;
                txtAC_DIRECCION_CONSIGNATARIO.Text = objCarta.AC_DIRECCION_CONSIGNATARIO;
                ddlZON_ID_CONSIGNATARIO.Value = objCarta.ZON_ID_CONSIGNATARIO;
                ddlACL_ID_NOTIFICAR.Value = objCarta.ACL_ID_NOTIFICAR.ToString();
                txtAC_CRUCE_FRONTERA.Text = objCarta.AC_CRUCE_FRONTERA;

                txtAC_DESCRIPCION_NOTIFICAR.Text = objCarta.AC_DESCRIPCION_NOTIFICAR;
                txtAC_DIRECCION_NOTIFICAR.Text = objCarta.AC_DIRECCION_NOTIFICAR;
                ddlZON_ID_NOTIFICAR.Value = objCarta.ZON_ID_NOTIFICAR;
                ddlZON_ID_RECEPCION.Value = objCarta.ZON_ID_RECEPCION;

                DateTime objAC_FECHA_RECEPCION = Convert.ToDateTime(objCarta.AC_FECHA_RECEPCION);
                txtAC_FECHA_RECEPCION.Text = objAC_FECHA_RECEPCION.ToShortDateString();

                if (objCarta.AC_FECHA_EMISION != null)
                    if (objCarta.AC_FECHA_EMISION.ToString() != "")
                    {
                        DateTime objAC_FECHA_EMISION = Convert.ToDateTime(objCarta.AC_FECHA_EMISION);
                        txtAC_FECHA_EMISION.Text = objAC_FECHA_EMISION.ToShortDateString();
                    }

                txtAC_LUGAR_EMISION.Text = objCarta.AC_LUGAR_EMISION;


                //txtAC_FECHA_RECEPCION.Text = objCarta.AC_FECHA_RECEPCION.ToString();

                ddlZON_ID_EMBARQUE.Value = objCarta.ZON_ID_EMBARQUE;

                DateTime objAC_FECHA_EMBARQUE = Convert.ToDateTime(objCarta.AC_FECHA_EMBARQUE);
                txtAC_FECHA_EMBARQUE.Text = objAC_FECHA_EMBARQUE.ToShortDateString();
                //txtAC_FECHA_EMBARQUE.Text = objCarta.AC_FECHA_EMBARQUE.ToString();
                ddlZON_ID_ENTREGA.Value = objCarta.ZON_ID_ENTREGA;

                DateTime objAC_FECHA_ENTREGA = Convert.ToDateTime(objCarta.AC_FECHA_ENTREGA);
                txtAC_FECHA_ENTREGA.Text = objAC_FECHA_ENTREGA.ToShortDateString();

                //txtAC_FECHA_ENTREGA.Text = objCarta.AC_FECHA_ENTREGA.ToString();

                txtAC_CONDICIONES.Text = objCarta.AC_CONDICIONES;
                txtAC_CANTIDAD_DESCRIPCION.Text = objCarta.AC_CANTIDAD_DESCRIPCION;
                txtAC_PESO_NETO.Text = objCarta.AC_PESO_NETO.ToString();
                txtAC_PESO_BRUTO.Text = objCarta.AC_PESO_BRUTO.ToString();
                //txtAC_VALOR.Text = objCarta.AC_VALOR.ToString();
                txtAC_TIPO_MONEDA.Text = objCarta.AC_TIPO_MONEDA;
                txtAC_TIPO_NEGOCIACION.Text = objCarta.AC_TIPO_NEGOCIACION;
                txtAC_FLETE_MONTO_DESTINATARIO.Text = objCarta.AC_FLETE_MONTO_DESTINATARIO.ToString();
                txtAC_VALOR_SEGURO_DESTINATARIO.Text = objCarta.AC_VALOR_SEGURO_DESTINATARIO.ToString();
                txtAC_OTROS_GASTOS_DESTINATARIO.Text = objCarta.AC_OTROS_GASTOS_DESTINATARIO.ToString();
                txtAC_INSTRUCCIONES_TRANSPORTISTA.Text = objCarta.AC_INSTRUCCIONES_TRANSPORTISTA.ToString();
                txtAC_OBSERVACIONES_DEL_TRANSPORTISTA.Text = objCarta.AC_OBSERVACIONES_DEL_TRANSPORTISTA;
                txtAC_TOTAL_DESTINATARIO.Text = Convert.ToDecimal(objCarta.AC_TOTAL_DESTINATARIO.ToString()).ToString();

                txtAC_OBSERVACIONES_ADUANA.Text = objCarta.AC_OBSERVACIONES_ADUANA;
                txtAC_DOCUMENTOS_ANEXOS.Text = objCarta.AC_DOCUMENTOS_ANEXOS;


                txtAC_FLETE_MONEDA_REMITENTE.Text = objCarta.AC_FLETE_MONEDA_REMITENTE;
                txtAC_SEGURO_MONEDA_REMITENTE.Text = objCarta.AC_SEGURO_MONEDA_REMITENTE;
                txtAC_OTROS_MONEDA_REMITENTE.Text = objCarta.AC_OTROS_MONEDA_REMITENTE;
                txtAC_FLETE_MONEDA_DESTINATARIO.Text = objCarta.AC_FLETE_MONEDA_DESTINATARIO;
                txtAC_SEGURO_MONEDA_DESTINATARIO.Text = objCarta.AC_SEGURO_MONEDA_DESTINATARIO;
                txtAC_OTROS_MONEDA_DESTINATARIO.Text = objCarta.AC_OTROS_MONEDA_DESTINATARIO;

                 txtAC_FLETE_MONTO_REMITENTE.Text = objCarta.AC_FLETE_MONTO_REMITENTE.ToString() ;
                 txtAC_VALOR_SEGURO_REMITENTE.Text = objCarta.AC_VALOR_SEGURO_REMITENTE.ToString();
                 txtAC_OTROS_GASTOS_REMITENTE.Text = objCarta.AC_OTROS_GASTOS_REMITENTE.ToString();
                 txtAC_TOTAL_REMITENTE.Text = objCarta.AC_TOTAL_REMITENTE.ToString();


                 txtAC_ADUANA_DESTINO.Text = objCarta.AC_ADUANA_DESTINO;
                //lblNumeroOrdenCargue.Text = StrAosId;
                //ddlCabezote.Value = v.AVE_ID_CABEZOTE.ToString();
                //ddlTrailer.Value = v.AVE_ID_TRAILER.ToString();
                //ddlConductores.Value = v.APE_ID.ToString();

                //DateTime objFechaSolicitud = Convert.ToDateTime(v.AOS_FECHA_SOLICITUD);
                //txtFechaSolicitud.Text = objFechaSolicitud.ToShortDateString();

                //DateTime objFechaEntrega = Convert.ToDateTime(v.AOS_FECHA_ENTREGA);
                //txtFechaEntrega.Text = objFechaEntrega.ToShortDateString();

                //DateTime objFechaAsignacion = Convert.ToDateTime(v.AOS_FECHA_ASIGNACION);
                //txtFechaAsignacion.Text = objFechaAsignacion.ToShortDateString();


                ////txtNovedadesEntrega.Text = v.AOS_NOVEDAD_ENTREGA;
                ////txtNovedadesRecibo.Text = v.AOS_NOVEDAD_SALIDA;


                //txtAOS_INTER_No.Text = v.AOS_INTER_No;
                //txtAOS_INTER_CERT.Text = v.AOS_INTER_CERT;
                //txtAOS_INTER_PERMISOS.Text = v.AOS_INTER_PERMISOS;
                //if (v.AOS_INTER_NATURALEZA_CARGA != "")
                //    rblAOS_INTER_NATURALEZA_CARGA.SelectedItem.Value = v.AOS_INTER_NATURALEZA_CARGA;
                //txtAOS_INTER_CANTIDAD.Text = v.AOS_INTER_CANTIDAD.ToString();
                //txtAOS_INTER_PRECIO_MERCANCIAS.Text = v.AOS_INTER_PRECIO_MERCANCIAS;
                //txtAOS_INTER_PESO_BRUTO.Text = v.AOS_INTER_PESO_BRUTO.ToString();
                //txtAOS_INTER_PESO_NETO.Text = v.AOS_INTER_PESO_NETO.ToString();

                //if (v.ZON_ID_ENTREGA != "")
                //    ddlPaisEntrega.Value = v.ZON_ID_ENTREGA.ToString();

                //if (v.ZON_ID_CARGA != "")
                //    ddlPaisCarga.Value = v.ZON_ID_CARGA.ToString();

                //if (!string.IsNullOrEmpty(v.AES_ID.ToString()))
                //    ddlEstadosOrden.Value = v.AES_ID.ToString();





            }
            #endregion


        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarddlACL_ID_DESTINO
    private void cargarddlACL_ID_DESTINO()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_CLIENTEs
                        join b in contexto.AUT_CLIENTs on a.ACT_ID equals b.ACT_ID

                        //where object.Equals(a.ZON_PADRE_ID, null)
                        select new
                        {
                            a.ACL_ID,
                            ACL_RAZON_SOCIAL = b.ACT_NOMBRE + " " + a.ACL_RAZON_SOCIAL
                        }
                        ;
            if (datos == null) return;
            ddlACL_ID_DESTINO.DataSource = datos;
            ddlACL_ID_DESTINO.TextField = "ACL_RAZON_SOCIAL";
            ddlACL_ID_DESTINO.ValueField = "ACL_ID";
            ddlACL_ID_DESTINO.DataBind();
            // ddlDepartamentoDestino.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarddlACL_ID_ORIGEN
    private void cargarddlACL_ID_ORIGEN()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_CLIENTEs
                        join b in contexto.AUT_CLIENTs on a.ACT_ID equals b.ACT_ID

                        //where object.Equals(a.ZON_PADRE_ID, null)
                        select new
                       {
                           a.ACL_ID,
                           ACL_RAZON_SOCIAL = b.ACT_NOMBRE + " " + a.ACL_RAZON_SOCIAL
                       }
                        ;
            if (datos == null) return;
            ddlACL_ID_ORIGEN.DataSource = datos;
            ddlACL_ID_ORIGEN.TextField = "ACL_RAZON_SOCIAL";
            ddlACL_ID_ORIGEN.ValueField = "ACL_ID";
            ddlACL_ID_ORIGEN.DataBind();
            // ddlDepartamentoDestino.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion


    #region ddlACL_ID_CONSIGNATARIO
    private void cargarddlACL_ID_CONSIGNATARIO()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_CLIENTEs
                        join b in contexto.AUT_CLIENTs on a.ACT_ID equals b.ACT_ID

                        //where object.Equals(a.ZON_PADRE_ID, null)
                        select new
                       {
                           a.ACL_ID,
                           ACL_RAZON_SOCIAL = b.ACT_NOMBRE + " " + a.ACL_RAZON_SOCIAL
                       }
                        ;
            if (datos == null) return;
            ddlACL_ID_CONSIGNATARIO.DataSource = datos;
            ddlACL_ID_CONSIGNATARIO.TextField = "ACL_RAZON_SOCIAL";
            ddlACL_ID_CONSIGNATARIO.ValueField = "ACL_ID";
            ddlACL_ID_CONSIGNATARIO.DataBind();
            // ddlDepartamentoDestino.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region ddlACL_ID_NOTIFICAR
    private void cargarddlACL_ID_NOTIFICAR()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_CLIENTEs
                        join b in contexto.AUT_CLIENTs on a.ACT_ID equals b.ACT_ID

                        //where object.Equals(a.ZON_PADRE_ID, null)
                        select new
                       {
                           a.ACL_ID,
                           ACL_RAZON_SOCIAL = b.ACT_NOMBRE + " " + a.ACL_RAZON_SOCIAL
                       }
                        ;
            if (datos == null) return;
            ddlACL_ID_NOTIFICAR.DataSource = datos;
            ddlACL_ID_NOTIFICAR.TextField = "ACL_RAZON_SOCIAL";
            ddlACL_ID_NOTIFICAR.ValueField = "ACL_ID";
            ddlACL_ID_NOTIFICAR.DataBind();
            // ddlDepartamentoDestino.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarddlZON_ID_ORIGEN
    private void cargarddlZON_ID_ORIGEN()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                        join b in contexto.BAS_ZONAS_PAISEs on a.ZOP_ID equals b.ZOP_ID
                        //where object.Equals(a.ZON_PADRE_ID, null)
                        select new
                        {
                            a.ZON_ID,
                            ZON_NOMBRE = a.ZON_NOMBRE + " " + b.ZOP_NOMBRE
                        };
            if (datos == null) return;
            ddlZON_ID_ORIGEN.DataSource = datos;
            ddlZON_ID_ORIGEN.TextField = "ZON_NOMBRE";
            ddlZON_ID_ORIGEN.ValueField = "ZON_ID";
            ddlZON_ID_ORIGEN.DataBind();
            // ddlDepartamentoDestino.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarddlZON_ID_DESTINO
    private void cargarddlddlZON_ID_DESTINO()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                        join b in contexto.BAS_ZONAS_PAISEs on a.ZOP_ID equals b.ZOP_ID
                        //where object.Equals(a.ZON_PADRE_ID, null)
                        select new
                        {
                            a.ZON_ID,
                            ZON_NOMBRE = a.ZON_NOMBRE + " " + b.ZOP_NOMBRE
                        };
            if (datos == null) return;
            ddlZON_ID_DESTINO.DataSource = datos;
            ddlZON_ID_DESTINO.TextField = "ZON_NOMBRE";
            ddlZON_ID_DESTINO.ValueField = "ZON_ID";
            ddlZON_ID_DESTINO.DataBind();
            // ddlDepartamentoDestino.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarddlZON_ID_CONSIGNATARIO
    private void cargarddlZON_ID_CONSIGNATARIO()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                        join b in contexto.BAS_ZONAS_PAISEs on a.ZOP_ID equals b.ZOP_ID
                        //where object.Equals(a.ZON_PADRE_ID, null)
                        select new
                        {
                            a.ZON_ID,
                            ZON_NOMBRE = a.ZON_NOMBRE + " " + b.ZOP_NOMBRE
                        };
            if (datos == null) return;
            ddlZON_ID_CONSIGNATARIO.DataSource = datos;
            ddlZON_ID_CONSIGNATARIO.TextField = "ZON_NOMBRE";
            ddlZON_ID_CONSIGNATARIO.ValueField = "ZON_ID";
            ddlZON_ID_CONSIGNATARIO.DataBind();
            // ddlDepartamentoDestino.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarddlZON_ID_EMBARQUE
    private void cargarddlZON_ID_EMBARQUE()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                        join b in contexto.BAS_ZONAS_PAISEs on a.ZOP_ID equals b.ZOP_ID
                        //where object.Equals(a.ZON_PADRE_ID, null)
                        select new
                        {
                            a.ZON_ID,
                            ZON_NOMBRE = a.ZON_NOMBRE + " " + b.ZOP_NOMBRE
                        };
            if (datos == null) return;
            ddlZON_ID_EMBARQUE.DataSource = datos;
            ddlZON_ID_EMBARQUE.TextField = "ZON_NOMBRE";
            ddlZON_ID_EMBARQUE.ValueField = "ZON_ID";
            ddlZON_ID_EMBARQUE.DataBind();
            // ddlDepartamentoDestino.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarddlZON_ID_ENTREGA
    private void cargarddlZON_ID_ENTREGA()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                        join b in contexto.BAS_ZONAS_PAISEs on a.ZOP_ID equals b.ZOP_ID
                        //where object.Equals(a.ZON_PADRE_ID, null)
                        select new
                        {
                            a.ZON_ID,
                            ZON_NOMBRE = a.ZON_NOMBRE + " " + b.ZOP_NOMBRE
                        };
            if (datos == null) return;
            ddlZON_ID_ENTREGA.DataSource = datos;
            ddlZON_ID_ENTREGA.TextField = "ZON_NOMBRE";
            ddlZON_ID_ENTREGA.ValueField = "ZON_ID";
            ddlZON_ID_ENTREGA.DataBind();
            // ddlDepartamentoDestino.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarddlZON_ID_NOTIFICAR
    private void cargarddlZON_ID_NOTIFICAR()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                        join b in contexto.BAS_ZONAS_PAISEs on a.ZOP_ID equals b.ZOP_ID
                        //where object.Equals(a.ZON_PADRE_ID, null)
                        select new
                        {
                            a.ZON_ID,
                            ZON_NOMBRE = a.ZON_NOMBRE + " " + b.ZOP_NOMBRE
                        };
            if (datos == null) return;
            ddlZON_ID_NOTIFICAR.DataSource = datos;
            ddlZON_ID_NOTIFICAR.TextField = "ZON_NOMBRE";
            ddlZON_ID_NOTIFICAR.ValueField = "ZON_ID";
            ddlZON_ID_NOTIFICAR.DataBind();
            // ddlDepartamentoDestino.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion

    #region cargarddlZON_ID_RECEPCION
    private void cargarddlZON_ID_RECEPCION()
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                        join b in contexto.BAS_ZONAS_PAISEs on a.ZOP_ID equals b.ZOP_ID
                        //where object.Equals(a.ZON_PADRE_ID, null)
                        select new
                        {
                            a.ZON_ID,
                            ZON_NOMBRE = a.ZON_NOMBRE + " " + b.ZOP_NOMBRE
                        };
            if (datos == null) return;
            ddlZON_ID_RECEPCION.DataSource = datos;
            ddlZON_ID_RECEPCION.TextField = "ZON_NOMBRE";
            ddlZON_ID_RECEPCION.ValueField = "ZON_ID";
            ddlZON_ID_RECEPCION.DataBind();
            // ddlDepartamentoDestino.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("--TODOS--", ""));
        }
        catch (Exception)
        {

            throw;
        }
    }
    #endregion


    protected void btnRegresar_Click(object sender, ImageClickEventArgs e)
    {
        Server.Transfer("CartaPorteListado.aspx?SSM_ID=53", true);
    }



    protected void btnGrabar_Click(object sender, EventArgs e)
    {
        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);

            if (StrAcId == "")
            {
                //MAXIMO
                int decMaximo = (from c in contexto.AUT_CARTAs
                                 select Convert.ToInt32(c.AC_NUMERO)).Max();
                decMaximo = decMaximo + 1;


                #region AUT_ORDEN_SALIDA
                //////////////////////////////////////////////
                //                                          //
                //             AUT_ORDEN_SALIDA              //
                //                                          //
                //////////////////////////////////////////////
                Model.AUT_CARTA objCarta = new Model.AUT_CARTA();


                objCarta.AC_NUMERO = decMaximo;

                txtAC_NUMERO.Text = decMaximo.ToString();
                objCarta.AC_EXP = txtAC_EXP.Text;

                objCarta.AC_FACTURA = txtAC_FACTURA.Text;

                objCarta.ACL_ID_ORIGEN = Convert.ToDecimal(ddlACL_ID_ORIGEN.Value.ToString());

                objCarta.ZON_ID_ORIGEN = ddlZON_ID_ORIGEN.Value.ToString();
                objCarta.ACL_DIRECCION_ORIGEN = txtACL_DIRECCION_ORIGEN.Text;
                objCarta.ACL_NIT_ORIGEN = txtACL_NIT_ORIGEN.Text;
                objCarta.ACL_ID_DESTINO = Convert.ToDecimal(ddlACL_ID_DESTINO.Value.ToString());
                objCarta.ACL_ID_CONSIGNATARIO = Convert.ToDecimal(ddlACL_ID_CONSIGNATARIO.Value.ToString());
                objCarta.ACL_ID_NOTIFICAR = Convert.ToDecimal(ddlACL_ID_NOTIFICAR.Value.ToString());
                objCarta.AC_DIRECCION_DESTINO = txtAC_DIRECCION_DESTINO.Text;
                objCarta.AC_NIT_DESTINO = txtAC_NIT_DESTINO.Text;
                objCarta.AC_CONTACTO = txtAC_CONTACTO.Text;
                objCarta.ZON_ID_DESTINO = ddlZON_ID_DESTINO.Value.ToString();
                objCarta.AC_DESCRIPCION_CONSIGNATARIO = txtAC_DESCRIPCION_CONSIGNATARIO.Text;
                objCarta.AC_DIRECCION_CONSIGNATARIO = txtAC_DIRECCION_CONSIGNATARIO.Text;
                objCarta.ZON_ID_CONSIGNATARIO = ddlZON_ID_CONSIGNATARIO.Value.ToString();
                objCarta.AC_DESCRIPCION_NOTIFICAR = txtAC_DESCRIPCION_NOTIFICAR.Text;
                objCarta.AC_DIRECCION_NOTIFICAR = txtAC_DIRECCION_NOTIFICAR.Text;
                objCarta.ZON_ID_NOTIFICAR = ddlZON_ID_NOTIFICAR.Value.ToString();
                objCarta.ZON_ID_RECEPCION = ddlZON_ID_RECEPCION.Value.ToString();
                objCarta.AC_FECHA_RECEPCION = Convert.ToDateTime(txtAC_FECHA_RECEPCION.Text);
                objCarta.ZON_ID_EMBARQUE = ddlZON_ID_EMBARQUE.Value.ToString();
                objCarta.AC_FECHA_EMBARQUE = Convert.ToDateTime(txtAC_FECHA_EMBARQUE.Text);
                objCarta.ZON_ID_ENTREGA = ddlZON_ID_ENTREGA.Value.ToString();
                objCarta.AC_FECHA_ENTREGA = Convert.ToDateTime(txtAC_FECHA_ENTREGA.Text);
                objCarta.AC_CONDICIONES = txtAC_CONDICIONES.Text;
                objCarta.AC_CANTIDAD_DESCRIPCION = txtAC_CANTIDAD_DESCRIPCION.Text;
                objCarta.AC_PESO_NETO = Convert.ToDecimal(txtAC_PESO_NETO.Text);
                objCarta.AC_PESO_BRUTO = Convert.ToDecimal(txtAC_PESO_BRUTO.Text);
                //objCarta.AC_VALOR = Convert.ToDecimal(txtAC_VALOR.Text);
                objCarta.AC_TIPO_MONEDA = txtAC_TIPO_MONEDA.Text;
                objCarta.AC_TIPO_NEGOCIACION = txtAC_TIPO_NEGOCIACION.Text;
                objCarta.AC_FLETE_MONTO_DESTINATARIO = Convert.ToDecimal(txtAC_FLETE_MONTO_DESTINATARIO.Text);
                objCarta.AC_VALOR_SEGURO_DESTINATARIO = Convert.ToDecimal(txtAC_VALOR_SEGURO_DESTINATARIO.Text);
                objCarta.AC_OTROS_GASTOS_DESTINATARIO = Convert.ToDecimal(txtAC_OTROS_GASTOS_DESTINATARIO.Text);
                objCarta.AC_INSTRUCCIONES_TRANSPORTISTA = txtAC_INSTRUCCIONES_TRANSPORTISTA.Text;
                objCarta.AC_OBSERVACIONES_DEL_TRANSPORTISTA = txtAC_OBSERVACIONES_DEL_TRANSPORTISTA.Text;
                objCarta.AC_TOTAL_DESTINATARIO = Convert.ToDecimal(txtAC_TOTAL_DESTINATARIO.Text);
                objCarta.AC_FECHA_EMISION = Convert.ToDateTime(txtAC_FECHA_EMISION.Text);
                objCarta.AC_LUGAR_EMISION = txtAC_LUGAR_EMISION.Text;
                objCarta.AC_CRUCE_FRONTERA = txtAC_CRUCE_FRONTERA.Text;
                objCarta.AC_OBSERVACIONES_ADUANA = txtAC_OBSERVACIONES_ADUANA.Text;
                objCarta.AC_DOCUMENTOS_ANEXOS = txtAC_DOCUMENTOS_ANEXOS.Text;

                objCarta.AC_FLETE_MONEDA_REMITENTE = txtAC_FLETE_MONEDA_REMITENTE.Text;
                objCarta.AC_SEGURO_MONEDA_REMITENTE = txtAC_SEGURO_MONEDA_REMITENTE.Text;
                objCarta.AC_OTROS_MONEDA_REMITENTE = txtAC_OTROS_MONEDA_REMITENTE.Text;
                objCarta.AC_FLETE_MONEDA_DESTINATARIO = txtAC_FLETE_MONEDA_DESTINATARIO.Text;
                objCarta.AC_SEGURO_MONEDA_DESTINATARIO = txtAC_SEGURO_MONEDA_DESTINATARIO.Text;
                objCarta.AC_OTROS_MONEDA_DESTINATARIO = txtAC_OTROS_MONEDA_DESTINATARIO.Text;

                objCarta.AC_FLETE_MONTO_REMITENTE = Convert.ToDecimal(txtAC_FLETE_MONTO_REMITENTE.Text);
                objCarta.AC_VALOR_SEGURO_REMITENTE = Convert.ToDecimal(txtAC_VALOR_SEGURO_REMITENTE.Text);
                objCarta.AC_OTROS_GASTOS_REMITENTE = Convert.ToDecimal(txtAC_OTROS_GASTOS_REMITENTE.Text);
                objCarta.AC_TOTAL_REMITENTE = Convert.ToDecimal(txtAC_TOTAL_REMITENTE.Text);
                objCarta.AC_ADUANA_DESTINO = txtAC_ADUANA_DESTINO.Text;

                contexto.AUT_CARTAs.InsertOnSubmit(objCarta);
                contexto.SubmitChanges();







                StrAcId = objCarta.AC_ID.ToString();
                #endregion
                // ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_parteA", "alert('Se genero exitosamente el Número de Orden de Cargue ');" + StrAosId, true);
                msgBox1.alert("Se guardo exitosamente la información");
            }
            else if (StrAcId != "")
            {
                var datosCarta = (from a in contexto.AUT_CARTAs
                                  where a.AC_ID == Convert.ToDecimal(StrAcId)
                                  select a);
                foreach (var objCarta in datosCarta)
                {


                    objCarta.AC_NUMERO = Convert.ToDecimal(txtAC_NUMERO.Text);
                    objCarta.AC_EXP = txtAC_EXP.Text;

                    objCarta.AC_FACTURA = txtAC_FACTURA.Text;

                    objCarta.ACL_ID_ORIGEN = Convert.ToDecimal(ddlACL_ID_ORIGEN.Value.ToString());

                    objCarta.ZON_ID_ORIGEN = ddlZON_ID_ORIGEN.Value.ToString();
                    objCarta.ACL_DIRECCION_ORIGEN = txtACL_DIRECCION_ORIGEN.Text;
                    objCarta.ACL_NIT_ORIGEN = txtACL_NIT_ORIGEN.Text;
                    objCarta.ACL_ID_DESTINO = Convert.ToDecimal(ddlACL_ID_DESTINO.Value.ToString());
                    objCarta.ACL_ID_CONSIGNATARIO = Convert.ToDecimal(ddlACL_ID_CONSIGNATARIO.Value.ToString());
                    objCarta.ACL_ID_NOTIFICAR = Convert.ToDecimal(ddlACL_ID_NOTIFICAR.Value.ToString());
                    objCarta.AC_DIRECCION_DESTINO = txtAC_DIRECCION_DESTINO.Text;
                    objCarta.AC_NIT_DESTINO = txtAC_NIT_DESTINO.Text;
                    objCarta.AC_CONTACTO = txtAC_CONTACTO.Text;
                    objCarta.ZON_ID_DESTINO = ddlZON_ID_DESTINO.Value.ToString();
                    objCarta.AC_DESCRIPCION_CONSIGNATARIO = txtAC_DESCRIPCION_CONSIGNATARIO.Text;
                    objCarta.AC_DIRECCION_CONSIGNATARIO = txtAC_DIRECCION_CONSIGNATARIO.Text;
                    objCarta.ZON_ID_CONSIGNATARIO = ddlZON_ID_CONSIGNATARIO.Value.ToString();
                    objCarta.AC_DESCRIPCION_NOTIFICAR = txtAC_DESCRIPCION_NOTIFICAR.Text;
                    objCarta.AC_DIRECCION_NOTIFICAR = txtAC_DIRECCION_NOTIFICAR.Text;
                    objCarta.ZON_ID_NOTIFICAR = ddlZON_ID_NOTIFICAR.Value.ToString();
                    objCarta.ZON_ID_RECEPCION = ddlZON_ID_RECEPCION.Value.ToString();
                    objCarta.AC_FECHA_RECEPCION = Convert.ToDateTime(txtAC_FECHA_RECEPCION.Text);
                    objCarta.ZON_ID_EMBARQUE = ddlZON_ID_EMBARQUE.Value.ToString();
                    objCarta.AC_FECHA_EMBARQUE = Convert.ToDateTime(txtAC_FECHA_EMBARQUE.Text);
                    objCarta.ZON_ID_ENTREGA = ddlZON_ID_ENTREGA.Value.ToString();
                    objCarta.AC_FECHA_ENTREGA = Convert.ToDateTime(txtAC_FECHA_ENTREGA.Text);
                    objCarta.AC_CONDICIONES = txtAC_CONDICIONES.Text;
                    objCarta.AC_CANTIDAD_DESCRIPCION = txtAC_CANTIDAD_DESCRIPCION.Text;
                    objCarta.AC_PESO_NETO = Convert.ToDecimal(txtAC_PESO_NETO.Text);
                    objCarta.AC_PESO_BRUTO = Convert.ToDecimal(txtAC_PESO_BRUTO.Text);
                    //objCarta.AC_VALOR = Convert.ToDecimal(txtAC_VALOR.Text);
                    objCarta.AC_TIPO_MONEDA = txtAC_TIPO_MONEDA.Text;
                    objCarta.AC_TIPO_NEGOCIACION = txtAC_TIPO_NEGOCIACION.Text;
                    objCarta.AC_FLETE_MONTO_DESTINATARIO = Convert.ToDecimal(txtAC_FLETE_MONTO_DESTINATARIO.Text);
                    objCarta.AC_VALOR_SEGURO_DESTINATARIO = Convert.ToDecimal(txtAC_VALOR_SEGURO_DESTINATARIO.Text);
                    objCarta.AC_OTROS_GASTOS_DESTINATARIO = Convert.ToDecimal(txtAC_OTROS_GASTOS_DESTINATARIO.Text);
                    objCarta.AC_INSTRUCCIONES_TRANSPORTISTA = txtAC_INSTRUCCIONES_TRANSPORTISTA.Text;
                    objCarta.AC_OBSERVACIONES_DEL_TRANSPORTISTA = txtAC_OBSERVACIONES_DEL_TRANSPORTISTA.Text;
                    objCarta.AC_TOTAL_DESTINATARIO = Convert.ToDecimal(txtAC_TOTAL_DESTINATARIO.Text);
                    objCarta.AC_FECHA_EMISION = Convert.ToDateTime(txtAC_FECHA_EMISION.Text);
                    objCarta.AC_LUGAR_EMISION = txtAC_LUGAR_EMISION.Text;
                    objCarta.AC_OBSERVACIONES_ADUANA = txtAC_OBSERVACIONES_ADUANA.Text;
                    objCarta.AC_DOCUMENTOS_ANEXOS = txtAC_DOCUMENTOS_ANEXOS.Text;
                    objCarta.AC_CRUCE_FRONTERA = txtAC_CRUCE_FRONTERA.Text;

                    objCarta.AC_FLETE_MONEDA_REMITENTE = txtAC_FLETE_MONEDA_REMITENTE.Text;
                    objCarta.AC_SEGURO_MONEDA_REMITENTE = txtAC_SEGURO_MONEDA_REMITENTE.Text;
                    objCarta.AC_OTROS_MONEDA_REMITENTE = txtAC_OTROS_MONEDA_REMITENTE.Text;
                    objCarta.AC_FLETE_MONEDA_DESTINATARIO = txtAC_FLETE_MONEDA_DESTINATARIO.Text;
                    objCarta.AC_SEGURO_MONEDA_DESTINATARIO = txtAC_SEGURO_MONEDA_DESTINATARIO.Text;
                    objCarta.AC_OTROS_MONEDA_DESTINATARIO = txtAC_OTROS_MONEDA_DESTINATARIO.Text;

                    objCarta.AC_FLETE_MONTO_REMITENTE = Convert.ToDecimal(txtAC_FLETE_MONTO_REMITENTE.Text);
                    objCarta.AC_VALOR_SEGURO_REMITENTE = Convert.ToDecimal(txtAC_VALOR_SEGURO_REMITENTE.Text);
                    objCarta.AC_OTROS_GASTOS_REMITENTE = Convert.ToDecimal(txtAC_OTROS_GASTOS_REMITENTE.Text);
                    objCarta.AC_TOTAL_REMITENTE = Convert.ToDecimal(txtAC_TOTAL_REMITENTE.Text);
                    objCarta.AC_ADUANA_DESTINO = txtAC_ADUANA_DESTINO.Text;


                    contexto.SubmitChanges();
                    msgBox1.alert("Se guardo exitosamente la actualización de la carta");
                    // ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_parteA", "alert('Se guardo exitosamente la actualización de Orden de Cargue ');" + StrAosId, true);
                }
            }
        }
        catch (Exception ex)
        {

            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_parteB", ex.Message.ToString(), true);
        }

    }

    protected void txtAC_FLETE_MONTO_DESTINATARIO_TextChanged(object sender, EventArgs e)
    {
        decimal decTotal =
        Convert.ToDecimal(txtAC_FLETE_MONTO_DESTINATARIO.Text) +
        Convert.ToDecimal(txtAC_VALOR_SEGURO_DESTINATARIO.Text) +
        Convert.ToDecimal(txtAC_OTROS_GASTOS_DESTINATARIO.Text);
        txtAC_TOTAL_DESTINATARIO.Text = decTotal.ToString();
    }

    protected void ddlACL_ID_DESTINO_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Cargar los datos del remitente para guia del usuario

        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);

            #region AUT_ORDEN_SALIDAs

            var datos = from a in contexto.AUT_CLIENTEs
                        join b in contexto.AUT_CLIENTs on a.ACT_ID equals b.ACT_ID
                        join c in contexto.BAS_ZONAS_GEOGRAFICAs on a.ZON_ID equals c.ZON_ID
                        join d in contexto.BAS_ZONAS_GEOGRAFICA1s on c.ZON_PADRE_ID equals d.ZON_ID
                        where a.ACL_ID == Convert.ToDecimal(ddlACL_ID_DESTINO.Value.ToString())
                        select new
                        {
                            a.ACL_DIRECCION,
                            b.ACT_NIT,
                            ZONA = c.ZON_NOMBRE + " " + d.ZON_NOMBRE,
                            c.ZON_ID,
                            a.ACL_CONTACTO
                        };

            foreach (var v in datos)
            {

                txtAC_DIRECCION_DESTINO.Text = v.ACL_DIRECCION;
                txtAC_NIT_DESTINO.Text = v.ACT_NIT;
                txtAC_CONTACTO.Text = v.ACL_CONTACTO;
                ddlZON_ID_DESTINO.Value = v.ZON_ID;
            }
            #endregion


        }
        catch (Exception)
        {

            throw;
        }
    }
    protected void ddlACL_ID_ORIGEN_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Cargar los datos del remitente para guia del usuario

        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);

            #region AUT_ORDEN_SALIDAs

            var datos = from a in contexto.AUT_CLIENTEs
                        join b in contexto.AUT_CLIENTs on a.ACT_ID equals b.ACT_ID
                        join c in contexto.BAS_ZONAS_GEOGRAFICAs on a.ZON_ID equals c.ZON_ID
                        join d in contexto.BAS_ZONAS_GEOGRAFICA1s on c.ZON_PADRE_ID equals d.ZON_ID
                        where a.ACL_ID == Convert.ToDecimal(ddlACL_ID_ORIGEN.Value.ToString())
                        select new
                        {
                            a.ACL_DIRECCION,
                            b.ACT_NIT,
                            ZONA = c.ZON_NOMBRE + " " + d.ZON_NOMBRE,
                            c.ZON_ID,
                            a.ACL_CONTACTO
                        };

            foreach (var v in datos)
            {

                txtACL_DIRECCION_ORIGEN.Text = v.ACL_DIRECCION;
                txtACL_NIT_ORIGEN.Text = v.ACT_NIT;
                //txtAC_CONTACTO.Text = v.ACL_CONTACTO;
                ddlZON_ID_ORIGEN.Value = v.ZON_ID;
            }
            #endregion


        }
        catch (Exception)
        {

            throw;
        }
    }
    protected void ddlACL_ID_CONSIGNATARIO_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Cargar los datos del remitente para guia del usuario

        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);

            #region AUT_ORDEN_SALIDAs

            var datos = from a in contexto.AUT_CLIENTEs
                        join b in contexto.AUT_CLIENTs on a.ACT_ID equals b.ACT_ID
                        join c in contexto.BAS_ZONAS_GEOGRAFICAs on a.ZON_ID equals c.ZON_ID
                        join d in contexto.BAS_ZONAS_GEOGRAFICA1s on c.ZON_PADRE_ID equals d.ZON_ID
                        where a.ACL_ID == Convert.ToDecimal(ddlACL_ID_CONSIGNATARIO.Value.ToString())
                        select new
                        {
                            a.ACL_DIRECCION,
                            b.ACT_NIT,
                            ZONA = c.ZON_NOMBRE + " " + d.ZON_NOMBRE,
                            c.ZON_ID,
                            a.ACL_CONTACTO
                        };

            foreach (var v in datos)
            {

                txtAC_DIRECCION_CONSIGNATARIO.Text = v.ACL_DIRECCION;
                //txtACL_NIT_ORIGEN.Text = v.ACT_NIT;
                //txtAC_CONTACTO.Text = v.ACL_CONTACTO;
                ddlZON_ID_CONSIGNATARIO.Value = v.ZON_ID;
            }
            #endregion


        }
        catch (Exception)
        {

            throw;
        }
    }
    protected void ddlACL_ID_NOTIFICAR_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Cargar los datos del remitente para guia del usuario

        try
        {
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);

            #region AUT_ORDEN_SALIDAs

            var datos = from a in contexto.AUT_CLIENTEs
                        join b in contexto.AUT_CLIENTs on a.ACT_ID equals b.ACT_ID
                        join c in contexto.BAS_ZONAS_GEOGRAFICAs on a.ZON_ID equals c.ZON_ID
                        join d in contexto.BAS_ZONAS_GEOGRAFICA1s on c.ZON_PADRE_ID equals d.ZON_ID
                        where a.ACL_ID == Convert.ToDecimal(ddlACL_ID_NOTIFICAR.Value.ToString())
                        select new
                        {
                            a.ACL_DIRECCION,
                            b.ACT_NIT,
                            ZONA = c.ZON_NOMBRE + " " + d.ZON_NOMBRE,
                            c.ZON_ID,
                            a.ACL_CONTACTO
                        };

            foreach (var v in datos)
            {

                txtAC_DIRECCION_NOTIFICAR.Text = v.ACL_DIRECCION;
                //txtACL_NIT_ORIGEN.Text = v.ACT_NIT;
                //txtAC_CONTACTO.Text = v.ACL_CONTACTO;
                ddlZON_ID_NOTIFICAR.Value = v.ZON_ID;
            }
            #endregion


        }
        catch (Exception)
        {

            throw;
        }
    }
    protected void txtAC_FLETE_MONTO_REMITENTE_TextChanged(object sender, EventArgs e)
    {
        decimal decTotal =
        Convert.ToDecimal(txtAC_FLETE_MONTO_REMITENTE.Text) +
        Convert.ToDecimal(txtAC_VALOR_SEGURO_REMITENTE.Text) +
        Convert.ToDecimal(txtAC_OTROS_GASTOS_REMITENTE.Text);
        txtAC_TOTAL_REMITENTE.Text = decTotal.ToString();
    }
}